package com.cn.mmd.service;

import com.cn.mmd.mapper.*;
import com.cn.mmd.model.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 问卷操作service实现类
 * Created by Administrator on 2016/6/29.
 */
@Service("questionnaire")
public class QuestionnaireServiceImpl implements QuestionnaireService {


    @Autowired
    protected QuestionnaireMapper questionnaireMapper;
    @Autowired
    protected QuestionnaireResultMapper questionnaireResultMapper;
    @Autowired
    protected TeacherMapper teacherMapper;
    @Autowired
    protected QuestionnaireStatisticalMapper questionnaireStatisticalMapper;
    @Autowired
    protected StudentMapper studentMapper;
    @Autowired
    protected  CourseMapper courseMapper;
    @Autowired
    protected  QuestionnaireSubmitMapper questionnaireSubmitMapper;


    /**
     * 发布问卷
     * @param questionnaire
     * @return
     */
    public int insertQuestionnaire(Questionnaire questionnaire){

        int a=questionnaireMapper.insertSelective(questionnaire);

        return a;
    }

    /**
     * 查询主键（通过条件查出当前问卷id）
     * @return
     */
    public Questionnaire selectPrimaryKey(String publisherId,String publishObjects,String questionnaireTitle,String nowTime){
        Questionnaire questionnaire=questionnaireMapper.selectPrimaryKey(publisherId,publishObjects,questionnaireTitle,nowTime);

        return questionnaire;
    }




    /**
     * 设置问卷问题
     * @param questionnaireResult
     * @return
     */
    public int addQuestion(QuestionnaireResult questionnaireResult){
        int a=questionnaireResultMapper.insertSelective(questionnaireResult);

        return a;
    }



    /**
     * 查询主键（通过条件查出当前问题id）
     * @return
     */
    public List<QuestionnaireResult> selectQuestionPrimaryKey(int questionnaireId){

        List<QuestionnaireResult> questionnaireResult=questionnaireResultMapper.selectQuestionPrimaryKey(questionnaireId);

        return questionnaireResult;
    }


    /**
     * 通过条件查询问卷 要分页
     * @param questionnaire
     * @return
     */
    public List<Questionnaire> selectMyQuestionnaire(Questionnaire questionnaire){

        return questionnaireMapper.selectMyQuestionnaire(questionnaire);
    }


    /**
     * 通过条件查询问卷 不分页
     * @param questionnaire
     * @return
     */
    public List<Questionnaire> selectAllQuestionnaire(Questionnaire questionnaire){
        return questionnaireMapper.selectAllQuestionnaire(questionnaire);
    }


    /**
     * 查看班级人数
     * @param releaseToWho
     * @return
     */
    public int selectNumber(String releaseToWho){
        return studentMapper.countByStudentClass(releaseToWho);
    }


    /**
     * 通过问卷id删除问卷
     * @param questionnaire
     * @return
     */
    public int delQuestionnaire(int questionnaire){
        return questionnaireMapper.deleteByPrimaryKey(questionnaire);
    }

    /**
     * 通过班级查出学生id
     * @param releaseToWho
     * @return
     */
    public List selectByStudentClass(String releaseToWho){
        return studentMapper.selectByStudentClass(releaseToWho);
    }

    /**
     * 查看问卷统计结果
     * @param questionnaireId
     * @return
     */
    public QuestionnaireStatistical selectStatistical(int questionnaireId){

        return questionnaireStatisticalMapper.selectByPrimaryKey(questionnaireId);
    }


    /**
     * 添加对问卷的统计
     * @param questionnaireStatistical
     * @return
     */
    public int insertStatistical(QuestionnaireStatistical questionnaireStatistical){

        return questionnaireStatisticalMapper.insertSelective(questionnaireStatistical);
    }


    /**
     * 修改对问卷的统计（统计结果实时改变）
     * @param questionnaireStatistical
     * @return
     */
    public int updateStatistical(QuestionnaireStatistical questionnaireStatistical){
        return questionnaireStatisticalMapper.updateByPrimaryKeySelective(questionnaireStatistical);
    }


    /**
     * 通过课程名查询班级
     * @param courseName
     * @return
     */
    public Course selectClasses(String courseName){
        return courseMapper.selectClasses(courseName);
    }


    /**
     * 填写提交问卷
     * @param questionnaireSubmit
     * @return
     */
    public int insertQuestionnaireSubmit(QuestionnaireSubmit questionnaireSubmit){
        return questionnaireSubmitMapper.insertSelective(questionnaireSubmit);
    }


    /**
     * 通过问题id查出整个问题信息
     * @param questionId
     * @return
     */
    public QuestionnaireResult selectByPrimaryKey(int questionId){
        return questionnaireResultMapper.selectByPrimaryKey(questionId);
    }


    /**
     * 通过问卷id和问题序号查出整个问题信息
     * @param questionnaireResult
     * @return
     */
    public QuestionnaireResult selectByQuestionNum(QuestionnaireResult questionnaireResult){
        return questionnaireResultMapper.selectByQuestionNum(questionnaireResult);
    }

    /**
     * 通过问卷id查出问卷信息
     * @param questionnaireId
     * @return
     */
    public Questionnaire selectByQuestionnaireId(int questionnaireId){
        return questionnaireMapper.selectByPrimaryKey(questionnaireId);
    }


    /**
     * 通过问卷id查出问卷题目等详情
     * @param questionnaireId
     * @return
     */
    public List<QuestionnaireResult> selectQuestionnaireResult(int questionnaireId){
        return questionnaireResultMapper.selectQuestionPrimaryKey(questionnaireId);
    }


    /**
     * 查出我答过的所有问卷
     * @param respondentId
     * @return
     */
    public List<QuestionnaireSubmit> selectQuestionnaireSubmit(String respondentId){
        return questionnaireSubmitMapper.selectMyQuestionnaireSubmit(respondentId);
    }


    /**
     * 发布人发布问卷的数量
     * @param teacherId
     * @return
     */
    public int countQuestionnaire(String teacherId){
        return questionnaireMapper.countQuestionnaire(teacherId);
    }


    /**
     * 通过时间段查出提交问卷表
     * @param map
     * @return
     */
    public List<QuestionnaireSubmit> selectQuestionnaireSubmitByTimeQuantum(Map map){
        return questionnaireSubmitMapper.selectQuestionnaireSubmitByTimeQuantum(map);
    }
}
